System.register([], function (_export) {
"use strict";
var CompositeObserver;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
return {
setters: [],
execute: function () {
CompositeObserver = (function () {
function CompositeObserver(observers, evaluate) {
var _this = this;
_classCallCheck(this, CompositeObserver);
this.subscriptions = new Array(observers.length);
this.evaluate = evaluate;
for (var i = 0, ii = observers.length; i < ii; i++) {
this.subscriptions[i] = observers[i].subscribe(function (newValue) {
_this.notify(_this.evaluate());
});
}
}
CompositeObserver.prototype.subscribe = function subscribe(callback) {
var that = this;
that.callback = callback;
return function () {
that.callback = null;
};
};
CompositeObserver.prototype.notify = function notify(newValue) {
var callback = this.callback;
if (callback) {
callback(newValue);
}
};
CompositeObserver.prototype.dispose = function dispose() {
var subscriptions = this.subscriptions;
var i = subscriptions.length;
while (i--) {
subscriptions[i]();
}
};
return CompositeObserver;
})();
_export("CompositeObserver", CompositeObserver);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2NvbXBvc2l0ZS1vYnNlcnZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFBYSxpQkFBaUI7Ozs7Ozs7QUFBakIsdUJBQWlCO0FBQ2pCLGlCQURBLGlCQUFpQixDQUNoQixTQUFTLEVBQUUsUUFBUSxFQUFDOzs7Z0NBRHJCLGlCQUFpQjs7QUFFMUIsY0FBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakQsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7O0FBRXpCLGVBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUM7QUFDaEQsZ0JBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFDLFFBQVEsRUFBSztBQUMzRCxvQkFBSyxNQUFNLENBQUMsTUFBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzlCLENBQUMsQ0FBQztXQUNKO1NBQ0Y7O0FBVlUseUJBQWlCLFdBWTVCLFNBQVMsR0FBQSxtQkFBQyxRQUFRLEVBQUM7QUFDakIsY0FBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2hCLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGlCQUFPLFlBQVU7QUFDZixnQkFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7V0FDdEIsQ0FBQztTQUNIOztBQWxCVSx5QkFBaUIsV0FvQjVCLE1BQU0sR0FBQSxnQkFBQyxRQUFRLEVBQUM7QUFDZCxjQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDOztBQUU3QixjQUFHLFFBQVEsRUFBQztBQUNWLG9CQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7V0FDcEI7U0FDRjs7QUExQlUseUJBQWlCLFdBNEI1QixPQUFPLEdBQUEsbUJBQUU7QUFDUCxjQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDOztBQUV2QyxjQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO0FBQzdCLGlCQUFNLENBQUMsRUFBRSxFQUFFO0FBQ1QseUJBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1dBQ3BCO1NBQ0Y7O2VBbkNVLGlCQUFpQjs7O21DQUFqQixpQkFBaUIiLCJmaWxlIjoiL1VzZXJzL0Vpc2VuYmVyZ0VmZmVjdC9Eb2N1bWVudHMvR2l0SHViL1RoZSBEdXJhbmRhbCBQcm9qZWN0L2F1cmVsaWEvYmluZGluZy9zcmMvY29tcG9zaXRlLW9ic2VydmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbXBvc2l0ZU9ic2VydmVyIHtcbiAgY29uc3RydWN0b3Iob2JzZXJ2ZXJzLCBldmFsdWF0ZSl7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gbmV3IEFycmF5KG9ic2VydmVycy5sZW5ndGgpO1xuICAgIHRoaXMuZXZhbHVhdGUgPSBldmFsdWF0ZTtcblxuICAgIGZvcih2YXIgaSA9IDAsIGlpID0gb2JzZXJ2ZXJzLmxlbmd0aDsgaSA8IGlpOyBpKyspe1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2ldID0gb2JzZXJ2ZXJzW2ldLnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5ldmFsdWF0ZSgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZShjYWxsYmFjayl7XG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgIHRoYXQuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICByZXR1cm4gZnVuY3Rpb24oKXtcbiAgICAgIHRoYXQuY2FsbGJhY2sgPSBudWxsO1xuICAgIH07XG4gIH1cblxuICBub3RpZnkobmV3VmFsdWUpe1xuICAgIHZhciBjYWxsYmFjayA9IHRoaXMuY2FsbGJhY2s7XG5cbiAgICBpZihjYWxsYmFjayl7XG4gICAgICBjYWxsYmFjayhuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpe1xuICAgIHZhciBzdWJzY3JpcHRpb25zID0gdGhpcy5zdWJzY3JpcHRpb25zO1xuXG4gICAgdmFyIGkgPSBzdWJzY3JpcHRpb25zLmxlbmd0aDtcbiAgICB3aGlsZShpLS0pIHtcbiAgICAgIHN1YnNjcmlwdGlvbnNbaV0oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |